var ctx=$("#ctx").val();

function pathUrl(url) {
	var ind = ctx.indexOf(';jsessionid=');
	if(ind != -1){
		ctx = ctx.substring(0,ind);
	}
    return ctx+url;
}

function getData(type,parm) {
	return $.map($('#'+type).bootstrapTable('getData'), function (row) {
		return eval('row.'+parm) == undefined ? "":eval('row.'+parm);
	});
}
function getgetselectionData(type,parm) {
	return $.map($('#'+type).bootstrapTable('getSelections'), function (row) {
		return eval('row.'+parm) == undefined ? "":eval('row.'+parm);
	});
}
function loadData(obj,HBox) {
	var key, value, tagName, type, arr;
	for (x in obj) {
		key = x;
		value = obj[x];
		$(HBox+" [name='" + key + "'],"+HBox+" [name='" + key + "[]']").each(function() {
			tagName = $(this)[0].tagName;
			type = $(this).attr('type');
			if (tagName == 'INPUT') {
				if (type == 'radio' || type == 'checkbox') {
					$(this).prop('checked', $(this).val() == value);
				}/* else if (type == 'checkbox') {
					arr = value.split(',');
					for ( var i = 0; i < arr.length; i++) {
						if ($(this).val() == arr[i]) {
							$(this).attr('checked', true);
							break;
						}
					}
				} */else {
					$(this).val(value);
				}
			} else if (tagName == 'SELECT' || tagName == 'TEXTAREA') {
				$(this).val(value);
			}
		});
	}
}

/*$.validator.addMethod("string", function(value, element) {
	return this.optional(element) || /^[u0391-uFFE5w]+$/.test(value);
	}, "不允许包含特殊符号!");*/

//对Date的扩展，将 Date 转化为指定格式的String   
//月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，   
//年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)   
//例子：   
//(new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423   
//(new Date()).format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18   
Date.prototype.format = function(fmt)   
{ //author: meizz   
	var o = {   
			"M+" : this.getMonth()+1,                 //月份   
			"d+" : this.getDate(),                    //日   
			"h+" : this.getHours(),                   //小时   
			"m+" : this.getMinutes(),                 //分   
			"s+" : this.getSeconds(),                 //秒   
			"q+" : Math.floor((this.getMonth()+3)/3), //季度   
			"S"  : this.getMilliseconds()             //毫秒   
	};   
	if(/(y+)/.test(fmt))   
		fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));   
	for(var k in o)   
		if(new RegExp("("+ k +")").test(fmt))   
			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));   
	return fmt;   
};
/*
 * 表单序列化（能序列化radio和checkbox是空）
 * bootstrap-select不能序列化要另外加上去
 * 添加示例：'&' + $.param({'rIds': ids})
 */
$.fn.serializeObject = function () {
    var a = this.serializeArray();
    var $radio = $('input[type=radio],input[type=checkbox]', this);
    var temp = {};
    $.each($radio, function () {
        if (!temp.hasOwnProperty(this.name)) {
            if ($("input[name='" + this.name + "']:checked").length == 0) {
            	var value;
            	if(this.value == 1){
            		value = 0;
            	}else{
            		value = 1;
            	}
                temp[this.name] = "";
                a.push({name: this.name, value: value});//value根据实际情况来写
            }
        }
    });
    return jQuery.param(a);
};

/*
 * @Description: 转UTF-8
 * @param :
 */
function toUtf8(str) {   
    var out, i, len, c;   
    out = "";   
    len = str.length;   
    for(i = 0; i < len; i++) {   
    	c = str.charCodeAt(i);   
    	if ((c >= 0x0001) && (c <= 0x007F)) {   
        	out += str.charAt(i);   
    	} else if (c > 0x07FF) {   
        	out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));   
        	out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));   
        	out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));   
    	} else {   
        	out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));   
        	out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));   
    	}   
    }   
    return out;   
}

/*
 * @Description: 单击子页面--右键页面消失
 * @param :
 */
$('body').click(function() {
	$(".dropdown-menuX", parent.document).hide();
})

/*
 * @Description: sweetAlert弹框(用于保存确认和删除确认)
 * @param :	title		标题
 * @param :	text		内容
 * @param :	type		类型('success','error','warning','info','question')	
 * @param :	confirmButtonText	确定按钮名称	
 * @param :	method		方法	(如:
 * 	function(result){//isConfirm 点击确定按钮，参数true/false
		if(result.value){
			$("#newProcessTable").bootstrapTable('removeRow',index);
		}
	}
   )
 */
function showSwal(title,text,confirmButtonText,method){
	swal({
		title : title,
		text : text,
		type : 'question',
		confirmButtonText : confirmButtonText,
		cancelButtonText : "取消",
		showCancelButton: true
	}).then(method);
}
function showSwalqi(title,text,cancelButtonText,confirmButtonText,method){
	swal({
		title : title,
		text : text,
		type : 'question',
		cancelButtonText : cancelButtonText,
		confirmButtonText : confirmButtonText,
		showCancelButton: true
	}).then(method);
}
function showSwalt(title,text,confirmButtonText,method){
	swal({
		title : title,
		text : text,
		type : 'warning',
		confirmButtonText : confirmButtonText,
		cancelButtonText : "取消",
		showCancelButton: true
	}).then(method);
}
/*
 * @Description: sweetAlert弹框(用于提示,显示1秒后自动关闭)
 * @param :	title	标题
 * @param :	type	类型('success','error','warning','info','question'),默认值：success
 */
function swal_Tips_Short(title,type){
	if(type == undefined){
		type = "success";
	}
	swal({
		title : title,
		text : '该提示框将在1秒后自动关闭！',
		type : type,
		timer : 1000
	});
}

function swal_Tips_long(title,type){
	if(type == undefined){
		type = "";
	}
	swal({
		title : title,
		type : type
	});
}
/*
 * @Description: 长文本格式化
 * @param :
 */
function wodrdsFormat(value,row,index){
	var str = value;
	if(str == null){
		str = "";
	}else if(str.length > 10){
		var content = str.substring(0,10);
		value = str.replace(/\s/g,'&nbsp;');
		str = "<a class='wordss' title="+ value +">" + content + "...</a>";
		//str="<a  data-toggle='tooltip' data-placement='right'>"+content+"...</a>"
	}
	return str;
}

/*
 * @Description: sweetAlert弹框(用于提示，不会自动关闭)
 * @param :	title	标题
 * @param :	text	内容
 * @param :	type	类型('success','error','warning','info','question'),默认值:error
 */
function swal_Tips(text,type){
	if(type == undefined){
		type = "error";
	}
	if(text == undefined){
		text = "";
	}
	swal({
		title : "错误",
		text : text,
		type : type
	});
}
/*
 * @Description: sweetAlert弹框(提示系统出错)
 * @param :	
 */
function swal_Tips_Error(){
	swal_Tips('系统出错');
}

/*
 * @Description: sweetAlert弹框(正在加载中提示)
 * @param :
 */
function showLoading(){
	swal({
		title : "请稍等",//标题
		text : "正在提交中。。。",//内容
		type : "info",//类型
		allowOutsideClick : false,//是否允许点击对话框外部来关闭对话框。默认true
		allowEscapeKey : false,//是否允许按下Esc键来关闭对话框。默认true
		onBeforeOpen : function(){//预先加载
			swal.showLoading();
		}
	});
}

/*
 * @Description: sweetAlert弹框(自定义内容)
 * @param :text 提示内容
 */
function loadingCustom(text){
	swal({
		title : "请稍等",//标题
		text : text,//内容
		type : "info",//类型
		allowOutsideClick : false,//是否允许点击对话框外部来关闭对话框。默认true
		allowEscapeKey : false,//是否允许按下Esc键来关闭对话框。默认true
		onBeforeOpen : function(){//预先加载
			swal.showLoading();
		}
	});
}

/*
 * @Description: 物料名称格式化
 * @param :
 */
function materialNameFormat(value,row,index){
	var str = value;
	if(str.length > 15){
		var content = str.substring(0,15);
		str = "<span title="+ value +">" + content + "...</span>";
	}
	return str;
}

/*
 * @Description: 有颜色提示：黄色排程计划开始时间等于今天，红色排程计划开始时间小于今天，绿色排程计划开始时间大于今天
 * @param :
 */
function dataColor(value){
	var time = dateFormatter(value);
	if(time == ""){
		return "";
	}else{
		var thisTime = new Date(time.replace(/-/g, '/'));
		var nowTime = new Date(new Date().setHours(0, 0, 0, 0)) / 1;
		thisTime = thisTime.getTime();
		if(thisTime == nowTime){
			return "<span style='color:yellow;'>" + time +"</span>"; 
		}else if(thisTime > nowTime){
			return "<span style='color:green;'>" + time +"</span>"; 
		}else if(thisTime < nowTime){
			return "<span style='color:red;'>" + time +"</span>"; 
		}
	}
}

/*
 * @Description: 时间格式化，转换成年月日形式（这种类型：2018-12-13T16:00:00.000+0000）
 * @param :
 */
function dateFormatter(value){
	var time = timeFormatter(value);
	if(time == ""){
		return "";
	}else{
		time = time.substring(0,16);
		return time;
	}
}
/*
 * @Description: 时间格式化，转换成年月日时分形式（这种类型：2018-12-13T16:00:00.000+0000）
 * @param :
 */
function timeFormatter(value){
	if(value == null){
		return "";
	} else{
		var date = new Date(+new Date(new Date(value).toJSON())+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,''); 
		return date;
	}
}
/*
 * @Description: 时间格式化，表格里显示年月日，鼠标移上去显示年月日时分秒
 * @param :
 */
function timeShortFormatter(value){
	var str = timeFormatter(value);
	if(str == ""){
		return "";
	}else{
		str = str.replace(/\s/g,'&nbsp;');
		var formatterTime = str.substring(0,10);
		return '<span title=' + str + '>' + formatterTime + '</span>';
	}
}

/*
 * @Description: 字符串格式化（每10个字符串换行）
 * @param :
 */
function formatterStringShort(value){
	var str = "";
	if(value != null){
		str = value.replace(/[^\x00-\xff]/g,"$&\x01").replace(/.{10}\x01?/g,"$&<br>").replace(/\x01/g,"");
	}
	return str;
}
/*
 * @Description: 字符串格式化（每20个字符串换行）
 * @param :
 */
function formatterStringLong(value){
	var str = "";
	if(value != null){
		str = value.replace(/[^\x00-\xff]/g,"$&\x01").replace(/.{20}\x01?/g,"$&<br>").replace(/\x01/g,"");
	}
	return str;
}
/*
 * @Description: 判断是手机端还是PC端
 * @param :
 * @return : 返回false是手机端，返回true是PC端
 */
function isPC() {
	var userAgentInfo = navigator.userAgent;
	var Agents = [ "Android", "iPhone", "SymbianOS", "Windows Phone", "iPad","iPod" ];
	var flag = true;
	for ( var v = 0; v < Agents.length; v++) {
		if (userAgentInfo.indexOf(Agents[v]) > 0) {
			flag = false;
			break;
		}
	}
	return flag;
}
/*
 * @Description: 判断开始日期是否大于结束日期
 * @param :
 * @return : 返回false开始日期小于结束日期，返回true开始日期大于结束日期
 */
function D_Date(){
	var startTime = $("#startTime").val();
	var endTime = $("#endTime").val();
	var flag = false;
	var D_value;
	if(startTime != "" || endTime != ""){
		D_value = jeDate.timeStampDate(endTime) - jeDate.timeStampDate(startTime);
	}
	if(D_value < 0){
		flag = true;
	}
	return flag;
}
/*
 * @Description: 改变iframe的高度
 * @param :
 */
function resizeIframeHight(){
	var height = $(window).height() - 10;//获取浏览器窗口大小
	var blank_bg = document.getElementsByClassName("blank_bg")[0];
	if(blank_bg != undefined){
		blank_bg.style.height = height +"px";
	}
}
/*
 * @Description: 改变报工台iframe的高度
 * @param :
 */
function resizeDeskHight(){
	var height = $(window).height() - 40;//获取浏览器窗口大小
	var blank_bg = document.getElementsByClassName("blank_bg")[0];
	if(blank_bg != undefined){
		blank_bg.style.height = height +"px";
	}
}

/*
 * @Description: 浏览器窗口大小自适应
 * @param :
 */
$(window).resize(function() {
	window.setTimeout(function() {
		resizeIframeHight();
	}, 0);
});

/*
 * @Description: 员工ID输入后，系统自动带出员工ID，确定按钮获得焦点
 * @param :	id 员工ID输入框的ID
 * @param :	nameID 员工姓名输入框的ID
 * @param :	saveID 确定按钮的ID
 * @param :	title 员工类型  
 */
function validateID(id,nameID,saveID,title){
	$(id).keyup(function(event){
		var length = $(id).val().length;
		if(length > 3){//判断输入的是否是3位员工卡号
//			loadingCustom("正在查询中。。。");
			$.ajax({
				url : pathUrl("emp/findByCondition.action"),
				type : 'GET',
				dataType : "JSON",
				data : {
					"row" : 100000,
					"fNumber" : $(id).val()
				},
				success : function(data) {
					var str = "";
					if(data.rows != null && data.rows.length == 1){//查询到数据并且只有一条数据，才写入员工姓名
//						swal.close();//关闭提示框
						str = data.rows[0].fName;
						$(saveID).focus();
					}
					/*if(str == ""){
						swal_Tips("请输入正确的"+ title +"卡号！");
					}*/
					$(nameID).val(str);
				},
				error : function(request) {
					swal_Tips_Error();
				}
			});
		}
	});
}

/*
 * @Description: 生成打印页面
 * @param :	data
 */

function toString(value){
	if(value == undefined){
		return '';
	}else{
		return value;
	}
}

function printPages(data){
	var html =	'<table class="firstTable" style="width:480px; page-break-after:always;" >';
		html +=		'<tr>';
		html +=			'<td colspan="3" style="height: 80px;">';
		html +=				'<div style="text-align: center;">';
		html +=					'<span class="card" style="" id="title">派工单</span>';
		html +=				'</div>';
		html +=			'</td>';
		html +=			'<td style="border-left: 0;width: 120px;padding: 0;" rowspan="3">';
		html +=				'<div id="qrcode'+toString(data.fCode)+'" style="margin-left: 5px;margin-top: 2px;"></div>';
		html +=			'</td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title" style="width: 112px !important;">批次</td>';
		html +=			'<td class="content" colspan="2"><span id="fBatchNo">'+ toString(data.fBatchNo) +'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title" style="">生产任务单</td>';
		html +=			'<td class="content" colspan="2"><span id="fBillNo">'+ toString(data.fBillNo) +'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title" style="">派工单号</td>';
		html +=			'<td class="content"><span id="fCode">'+ toString(data.fCode) +'</span></td>';
		html +=			'<td class="title" style="width: 112px !important;">销售单号</td>';
		html +=			'<td class="content"><span id="fSEOrderNo">'+ toString(data.fSEOrderNo) +'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title">规格型号</td>';
		html +=			'<td class="content" colspan="3"><span id="fModel">'+ toString(data.fModel) +'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title">产品名称</td>';
		html +=			'<td class="content"><span id="fName">'+ toString(data.fName) +'</span></td>';
		html +=			'<td class="title">本道工序号</td>';
		html +=			'<td class="content" style=""><span id="fOperSN">'+ toString(data.fOperSN) +'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title" >本道工序</td>';
		html +=			'<td class="content"><span id="fOper">'+ toString(data.fOper) +'</span></td>';
		html +=			'<td class="title" style="">本道车间</td>';
		html +=			'<td class="content" style=""><span id="fDepName">'+ toString(data.fDepName) +'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title">本道工序说明</td>';
		html +=			'<td class="content" colspan="3"><span id="fNote">'+ toString(data.fNote) +'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title">开工日期</td>';
		html +=			'<td class="content"><span id="fStartTime">'+ toString(data.fStartTime) +'</span></td>';
		html +=			'<td class="title">完工日期</td>';
		html +=			'<td class="content"><span id="fEndTime">'+ toString(data.fEndTime) +'</span></td>';
		html +=		'</tr>';
	if(toString(data.dataset) == 'sc'){
		html += '<tr class="zjANDqj">';
		html +=		'<td class="" style="text-align: left;" colspan="4">';
		html +=			'<span style="display: inline-block;width: 160px;">自检1-姓名：</span>';
		html +=			'<span class="spanContent">正品：</span>';
		html +=			'<span class="spanContent">次品：</span>';
		html +=			'<span class="spanContent">工废：</span>';
		html +=			'<span class="spanContent">料废：</span>';
		html +=		'</td>';
		html +=	'</tr>';
		html +=	'<tr class="zjANDqj">';
		html +=		'<td class="" style="text-align: left;" colspan="4">';
		html +=			'<span style="display: inline-block;width: 160px;">全检1-姓名：</span>';
		html +=			'<span class="spanContent">正品：</span>';
		html +=			'<span class="spanContent">次品：</span>';
		html +=			'<span class="spanContent">工废：</span>';
		html +=			'<span class="spanContent">料废：</span>';
		html +=		'</td>';
		html +=	'</tr>';
		html +=	'<tr class="zjANDqj">';
		html +=		'<td class="" style="text-align: left;" colspan="4">';
		html +=			'<span style="display: inline-block;width: 160px;">自检2-姓名：</span>';
		html +=			'<span class="spanContent">正品：</span>';
		html +=			'<span class="spanContent">次品：</span>';
		html +=			'<span class="spanContent">工废：</span>';
		html +=			'<span class="spanContent">料废：</span>';
		html +=		'</td>';
		html +=	'</tr>';
		html +=	'<tr class="zjANDqj">';
		html +=		'<td class="" style="text-align: left;" colspan="4">';
		html +=			'<span style="display: inline-block;width: 160px;">全检2-姓名：</span>';
		html +=			'<span class="spanContent">正品：</span>';
		html +=			'<span class="spanContent">次品：</span>';
		html +=			'<span class="spanContent">工废：</span>';
		html +=			'<span class="spanContent">料废：</span>';
		html +=		'</td>';
		html +=	'</tr>';
		html +=	'<tr class="zjANDqj">';
		html +=		'<td class="" style="text-align: left;" colspan="4">';
		html +=			'<span style="display: inline-block;width: 160px;">自检3-姓名：</span>';
		html +=			'<span class="spanContent">正品：</span>';
		html +=			'<span class="spanContent">次品：</span>';
		html +=			'<span class="spanContent">工废：</span>';
		html +=			'<span class="spanContent">料废：</span>';
		html +=		'</td>';
		html +=	'</tr>';
		html +=	'<tr class="zjANDqj">';
		html +=		'<td class="" style="text-align: left;" colspan="4">';
		html +=			'<span style="display: inline-block;width: 160px;">全检3-姓名：</span>';
		html +=			'<span class="spanContent">正品：</span>';
		html +=			'<span class="spanContent">次品：</span>';
		html +=			'<span class="spanContent">工废：</span>';
		html +=			'<span class="spanContent">料废：</span>';
		html +=		'</td>';
		html +=	'</tr>';
	}
	html += '<tr>';
	html +=		'<td class="title">设备</td>';
	html +=		'<td class="content" colspan=""><span id="fMacName">'+ toString(data.fMacName) +'</span></td>';
	html +=		'<td class="title">客户型号</td>';
	html +=		'<td class="content" colspan=""><span id="fCustModel">'+ toString(data.fCustModel) +'</span></td>';
	html +=	'</tr>';
	html +=	'<tr>';
	html +=		'<td class="title">上道工序说明</td>';
	html +=		'<td class="content" colspan="3"><span id="fUpOperNote">'+ toString(data.fUpOperNote) +'</span></td>';
	html +=	'</tr>';
	html +=	'<tr>';
	html +=		'<td class="title">下道工序说明</td>';
	html +=		'<td class="content" colspan="3"><span id="fNextOperNote">'+ toString(data.fNextOperNote) +'</span></td>';
	html +=	'</tr>';
	html +=	'<tr>';
	html +=		'<td class="" style="text-align: left;" colspan="4">';
	html +=			'<span style="margin-left: 10px;">加工数量：</span>';
	html +=			'<span id="fTargetQty" style="margin-right: 10px;">'+ toString(data.fTargetQty) +'</span>';
	html +=			'<span style="">定额：</span>';
	html +=			'<span id="fPieceRate" style="margin-right: 10px;">'+ toString(data.fPieceRate) +'</span>';
	html +=			'<span style="">定额折扣：</span>';
	html +=			'<span id="fDiscountPieceRate" style="margin-right: 10px;">'+ toString(data.fDiscountPieceRate) +'</span>';
	html +=			'<div class="col-sm-3 col-md-3 bzzy" style="display: inline-block;padding: 0;">';
	html +=				'<span style="">实际需完成数：</span>';
	html +=				'<span id="fDiscountQty">'+ toString(data.fDiscountQty) +'</span>';
	html +=			'</div>';
	html +=		'</td>';
	html +=	'</tr>';
    if(toString(data.dataset) == 'zp'){
    	html += '<tr class="bzzy">';
    	html +=		'<td class="title" style="">备注</td>';
    	html +=		'<td class="content" colspan="3" style="vertical-align: top;"><span id="fIcmoNote">'+ toString(data.fIcmoNote) +'</span></td>';
    	html +=	'</tr>';
    	html +=	'<tr class="bzzy">';
    	html +=		'<td class="title" style="">摘要</td>';
    	html +=		'<td class="content" colspan="3" style="vertical-align: top;"><span id="fExplanation">'+ toString(data.fExplanation) +'</span></td>';
    	html +=	'</tr>';
    }
    html += '</table>';
	return html;
}
//油漆
function youprintPages(data){
	var html =	'<table class="firstTable" style="width:480px; page-break-after:always;" >';
		html +=		'<tr>';
		html +=			'<td colspan="3" style="height: 80px;">';
		html +=				'<div style="text-align: center;">';
		html +=					'<span class="card" style="" id="title">派工单</span>';
		html +=				'</div>';
		html +=			'</td>';
		html +=			'<td style="border-left: 0;width: 120px;padding: 0;" rowspan="2">';
		html +=				'<div id="qrcode'+toString(data.fCode)+'" style="margin-left: 5px;margin-top: 2px;"></div>';
		html +=			'</td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title" style="width: 112px !important;"  >生产任务单</td>';
		html +=			'<td class="content" colspan="2"><span id="fBillNo">'+toString(data.fBillNo)+'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title" style="">派工单号</td>';
		html +=			'<td class="content"><span id="fCode">'+toString(data.fCode)+'</span></td>';
		html +=			'<td class="title" style="width: 112px !important;">设备/姓名</td>';
		html +=			'<td class="content"><span id="fMacName">'+toString(data.fMachine)+'</span></td>';
		html +=		'</tr>';
		html +=		'<tr>';
		html +=			'<td class="title">规格型号</td>';
		html +=			'<td class="content"><span id="fModel">'+toString(data.fModel)+'</span></td>';
		html +=			'<td class="title">数量</td>';
		html +=			'<td class="content"><span id="fTargetQty">'+toString(data.fTargetQty)+'</span></td>';
		html +=		'</tr>';
		html +=		'<tr class="bzzy">';
		html +=			'<td class="title" style="">备注</td>';
		html +=			'<td class="content" colspan="3" style="vertical-align: top;"><span id=fIcmoNote>'+toString(data.fIcmoNote)+'</span></td>';
		html +=		'</tr>';
		html +=		'<tr class="bzzy">';
		html +=			'<td class="title" style="">摘要</td>';
		html +=			'<td class="content" colspan="" style="vertical-align: top;"><span id=fExplanation>'+ toString(data.fExplanation) +'</span></td>';
		html +=			'<td class="title" style="">定额</td>';
		html +=			'<td class="content" colspan="" style="vertical-align: top;"><span id=fPieceRate>'+toString(data.fPieceRate)+'</span></td>';
		html +=		'</tr>';
		html +=		'<tr class="bzzy">';
		html +=			'<td class="title" style="">派工时间</td>';
		html +=			'<td class="content" colspan="3" style="vertical-align: top;"><span id=fDate>'+ dateFormatter(data.fDate) +'</span></td>';
		html +=		'</tr>';
		html +=		'<tr class="">';
		html +=			'<td class="title" style="">客户型号</td>';
		html +=			'<td class="content" colspan="3" style="vertical-align: top;"><span id=fCustModel>'+toString(data.fCustModel)+'</span></td>';
		html +=		'</tr>';
		html +=	'</table>';
	return html;
}


/*
 * @Description: 对象复制
 * @param : 
 */
function cloneObjectFn(obj) {
    var result = Array.isArray(obj) ? [] : {};
    for (var key in obj) {
      if (obj.hasOwnProperty(key)) {
        if (typeof obj[key] === 'object' && obj[key]!==null) {
          result[key] = cloneObjectFn(obj[key]);   //递归复制
        } else {
          result[key] = obj[key];
        }
      }
    }
    return result;
	}
	
/**
 * @description: 判断一个输入是否是合法的数字
 * @param {number} num 
 */
function isANumber(num) {
	// 当有输入时，再进行判断
	if(num !== null && num !== undefined && num !== '') {
		console.log(num);
		console.log(Number(num));
		// NaN === NaN永远返回false,所以此处必须用isNaN来判断
		return !(Number.isNaN(Number(num)) || (Number(num) < 0) || (Number(num) > 1000000));
	}
	
	if (num === '') {
		return true;
	}
	
	return false;
}

/*
 * @Description: 查询在制
 * @param :	
 */
function getZaizhi(fnumber){
	$.ajax({
		url : pathUrl("card/countGX.action?fNumber="+fnumber),
		type : 'GET',
		success : function(data) {
			if(data != 1){//返回值不为1，弹出工艺路线不唯一提示
				swal_Tips_Short("存在多种工艺路线，详情请看工序计划！","error");
			}
			$("#detail").bootstrapTable('destroy').bootstrapTable({
				url : pathUrl("card/getZaizhi.action?fNumber="+fnumber),
				height :  368,
				method : "GET",
				striped : true,
				editable:true,//开启编辑模式
				toolbar : '#toolbar',
				cache : false,
				//pagination : true,
				pageNumber : 1,
				pageSize : 20,
				sidePagination : "client", // 分页方式：client客户端分页，server服务端分页（*）
				pageList : [ 'all' ],
				dataType : 'JSON',
				uniqueId : "",
				columns : [{
					field : 'fName',
					align : 'left',
					title : '物料名称',
					edit : false
				},{
					field : 'fNumber',
					align : 'left',
					title : '物料代码',
					edit : false
				}, {
					field : 'fModel',
					align : 'left',
					title : '物料型号',
					edit : false
				}, {
					field : 'fOperSN',
					align : 'left',
					title : '工序号',
					edit : false
				},{
					field : 'fOperName',
					align : 'left',
					title : '工序名',
					edit : false
				},{
					field : 'fQty',
					align : 'left',
					title : '工序数量',
					edit : false
				},{
					field : 'fzqty',
					align : 'left',
					title : '派工未完数',
					edit : false
				},{
					field : 'fNote',
					align : 'left',
					title : '加工说明',
					edit : false
				}],
				onLoadSuccess : function(data) {
					$("#modifyModal").modal("show");
				}
			});
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
}

function getReport(code,ids,Preview){
	if(Preview == undefined){
		Preview = 0;
	}
	$.ajax({
		url : pathUrl("bill/getPrintGRF.action"),
		type : "POST",
		dataType : "JSON",
		data : {
			'code' : code,
			'newStr' : ids
		},
		success : function(data) {
			if (data.code == "0000") {
				printReport(data.desc,data.type,Preview);
			} else if (data.code == "9999") {
				swal_Tips(data.message);
			}
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
}

function printReport(reportUrl,ReportName,Preview){
	 var msg = '{'
				+'"method":"' + 'printreport' +'"'  /*报表类型 gridreport fastreport reportmachine 为空 将默认为gridreport  */
				+',"ReportType":"' + 'gridreport' +'"'  /*报表类型 gridreport fastreport reportmachine 为空 将默认为gridreport  */
				+',"ReportName":"' + ReportName +'"' /*报表文件名 领料单 */
				+',"ReportUrl":"' + reportUrl +'"' /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/
				+',"Preview":"' + Preview +'"'  /*可选。是否预览，和主界面设置的效果一样 为空默认不预览,   0：不预览，1：预览(弹出导出的pdf,jpg等文件)。*/
				+',"token":"' + 'aa' +'"' /*可选。只要token值在列表中 方可打印*/
				+ '}';
		
	jQuery.support.cors = true;         //写到$.ajax $.get $.post 前面 解决 jQuery.Ajax IE8,9 无效（CORS跨域）								
	$.ajax({
        async : false, //循环打印时,　async 必须设置为 false，则所有的请求均为同步请求，在没有返回值之前，同步请求将锁住浏览器，用户其它操作必须等待请求完成才可以执行。
        url : "http://127.0.0.1:12345",
        type : "POST",
        contentType: "application/x-www-form-urlencoded", //要这样设置  
        dataType : "json", //设置为 json 格式
        xhrFields: {withCredentials: false},
		crossDomain: true, 
        data : msg,
		beforeSend: function (XMLHttpRequest) {
			 // beforeSend 函数里 不允许添加任何 东西	
             //XMLHttpRequest.setRequestHeader("token", 'abcd1234'); //不允许 使用jQuery发送AJAX请求时在header中添加Token
        },
        success: function(data){
			console.log(JSON.stringify(data));			
			if(data.status=="ok"){
				swal_Tips_Short("打印成功:"+data.data);				
			}else{
				swal_Tips("打印失败:"+data.data);
			}
        },
        error: function(data){
            //console.log(status, response);
			console.log(JSON.stringify(data));
			swal_Tips("连接HttpPrinter失败:"+JSON.stringify(data));
        }
    });	  
}